package service;
import java.time.ZonedDateTime;

/**
 * 电话账单计算的服务接口.
 *
 * @author xiaoz
 */
public interface PhoneBillBillingService {
    /**
     * 输入时间计算通话费用.
     *
     * @param startTime 通话开始时间
     * @param endTime 通话结束时间
     * @return 话费。
     */
    Double calculateTheCost(ZonedDateTime startTime, ZonedDateTime endTime);

    /**
     * 计算通话时长.
     * @param startTime 通话开始时间
     * @param endTime 通话结束时间
     * @return 通话时长（秒）。
     */
    Long calculateAirtime(ZonedDateTime startTime, ZonedDateTime endTime);

    /**
     * 通过通话时长计算通话费用.
     * @param airTime 通话时长（秒）
     * @return 话费。
     */
    Double calculateTheCost(Long airTime);

    /**
     * 计算通话时长（分钟）.
     * @param startTime 通话开始时间
     * @param endTime 通话结束时间
     * @return 通话时长（分钟）。
     */
    Long calculateMinutes(ZonedDateTime startTime, ZonedDateTime endTime);

}